/**
 * 基础实体接口 - 包含所有表共有的字段
 */
interface BaseEntity {
  id?: number;               // ID主键
  created_at?: string;       // 创建时间
  updated_at?: string;       // 更新时间
}

/**
 * 轮播图/Slider
 */
export interface Slider extends BaseEntity {
  title: string;             // 轮播图标题
  description?: string | null; // 轮播图描述
  image_url: string;         // 图片URL地址
  bg_color?: string;         // 背景色(默认#ffffff)
  sort_order?: number;       // 排序序号
}

/**
 * 企业介绍/Company Intro
 */
export interface CompanyIntro extends BaseEntity {
  title: string;             // 企业标题
  description: string;       // 企业描述内容
  bg_color?: string;         // 背景色(默认#ffffff)
}

/**
 * 关于我们/About Us
 */
export interface AboutUs extends BaseEntity {
  title: string;             // 关于我们标题
  image_url: string;         // 关于我们图片URL
  desc_title: string;        // 描述标题
  desc1: string;             // 描述内容第一部分
  desc2: string;             // 描述内容第二部分
  bg_color?: string;         // 背景色(默认#ffffff)
  stats?: AboutStat[];       // 关联的统计数据
}

/**
 * 关于我们统计项/About Stats
 */
export interface AboutStat extends BaseEntity {
  about_id: number;          // 关联的about_us表ID
  title: string;             // 统计项标题
  value: number;             // 统计数值
  sort_order?: number;       // 排序序号
}

/**
 * 产品服务/Products
 */
export interface Product extends BaseEntity {
  title: string;             // 产品服务标题
  description?: string | null; // 产品服务描述
  items?: ProductItem[];     // 关联的产品项
}

/**
 * 产品服务项/Product Items
 */
export interface ProductItem extends BaseEntity {
  product_id: number;        // 关联的products表ID
  title: string;             // 产品项标题
  description?: string | null; // 产品项描述
  image_url: string;         // 产品图片URL
  sort_order?: number;       // 排序序号
  features?: string; // 产品项特性列表
}

/**
 * 解决方案/Solutions
 */
export interface Solution extends BaseEntity {
  title: string;             // 解决方案标题
  description?: string | null; // 解决方案描述
  items?: SolutionItem[];    // 关联的解决方案项
  image_url: string;         // 产品图片URL
  sort_order?: number;       // 排序序号
}

/**
 * 解决方案项/Solution Items
 */
export interface SolutionItem extends BaseEntity {
  solution_id: number;       // 关联的solutions表ID
  title: string;             // 解决方案项标题
  description?: string | null; // 解决方案项描述
  image_url: string;         // 解决方案图片URL
  sort_order?: number;       // 排序序号
  points?: SolutionPoint[];  // 关联的解决方案描述点
}

/**
 * 解决方案描述点/Solution Points
 */
export interface SolutionPoint extends BaseEntity {
  solution_item_id: number;  // 关联的solution_items表ID
  point: string;             // 描述点内容
  sort_order?: number;       // 排序序号
}

/**
 * 新闻与活动/News
 */
export interface News extends BaseEntity {
  title: string;             // 新闻标题
  description?: string | null; // 新闻描述
  items?: NewsItem[];        // 关联的新闻项
}

/**
 * 新闻项/News Items
 */
export interface NewsItem extends BaseEntity {
  news_id: number;           // 关联的news表ID
  title: string;             // 新闻标题
  description?: string | null; // 新闻描述
  image_url: string;         // 新闻图片URL
  publish_date: string;      // 发布日期
  tag: 'company_news' | 'product_update' | 'activity'; // 新闻标签
  sort_order?: number;       // 排序序号
}

/**
 * 完整数据库结构接口
 */
export interface Database {
  web2_slider: Slider[];         // 轮播图数据
  web2_company_intro: CompanyIntro; // 企业介绍数据
  web2_about_us: AboutUs;       // 关于我们数据
  about_stats?: AboutStat[];  // 关于我们统计项数据
  web2_products: Product;      // 产品服务数据
  product_items?: ProductItem[]; // 产品服务项数据
  web2_solutions: Solution;     // 解决方案数据
  solution_items?: SolutionItem[]; // 解决方案项数据
  solution_points?: SolutionPoint[]; // 解决方案描述点数据
  web2_news: News;             // 新闻与活动数据
  news_items?: NewsItem[];   // 新闻项数据
}

/**
 * 标准API响应格式
 */
export interface ApiResponse<T = Database> {
  data: T;                   // 返回的核心数据
  error?: string;            // 错误信息(如有)
  code?: number;             // 状态码
  message?: string;          // 附加消息
  success?: boolean;         // 请求是否成功
  timestamp?: number;        // 响应时间戳
}